package pers.goetboy.common.vaild;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 匹配枚举类中字段
 *
 * @author goetb
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = IsEnumValidator.class)
public @interface IsEnum {
    String message() default "传入的参数值不在枚举中";

    /**
     * 执行比对的方法，
     * 此方法有且只有一个参数，且不能被重载
     * @return
     */
    String method() default "contains";

    Class<?> aClass();

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}
